#import "MRWebBrowser.h"

/*===================================================================
 说明:
    反馈在线列表
 ==================================================================*/
@implementation MRWebBrowser

+ (id)url:(NSString *)url
{
    return [[MRWebBrowser alloc] initWithURL:url];
}

- (id)init
{
    return [self initWithURL:nil];
}

- (id)initWithURL:(NSString *)url
{
    if (self = [super init])
    {
        _url = url;
    }
    return self;
}

- (void)viewDidLoad
{
	[super viewDidLoad];
	
    _webView = [[UIWebView alloc] init];
    _webView.delegate = self;
	_webView.opaque = NO;
	_webView.backgroundColor = skin.nightMode ? [UIColor lightGrayColor] : [UIColor whiteColor];
	
	[_webView addConstraintEqualSuperview:self.view];
	
    if ([_url rangeOfString:[NSBundle mainBundle].resourcePath].length)
        [self refresh];
    else
        [self loadBlankPage];
	
	self.refreshControl = [[MRRefreshControl alloc] initWithScrollView:_webView.scrollView];
}

/*===================================================================
 说明:
    格式化URL
 ==================================================================*/
- (void)setURL:(NSString *)url format:(NSString *)format, ...
{
    if (format)
    {
        va_list args;
        va_start(args, format);
        
        _url = [url stringByAppendingString:[[NSString alloc] initWithFormat:format arguments:args]];
        va_end(args);
    }
    
    //添加语言标识
    /*if ([url rangeOfString:@"?"].length == 0)
        _url = [url stringByAppendingFormat:@"?lang=%@", app.language];
    else
        _url = [url stringByAppendingFormat:@"&lang=%@", app.language];*/
}

/*===================================================================
 说明:
    刷新
 ==================================================================*/
- (void)refresh
{
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:_url]];
    request.timeoutInterval = 20;
    
    [_webView loadRequest:request];
}

/*===================================================================
 说明:
    加载默认空白页(防止黑边)
 ==================================================================*/
- (void)loadBlankPage
{  
    if (!_blankRequest)
    {  
        NSString *blank = [[NSBundle mainBundle] pathForResource:@"blank" ofType:@"html"];  
        _blankRequest = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:blank]];  
    }  
    
    [_webView loadRequest:_blankRequest];  
}

/*===================================================================
 说明:
    加载成功
 ==================================================================*/
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    //[MRHud dismiss];
    [_refreshControl endRefreshing];
    
    //获取当前网页的标题
    self.navigationItem.title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];
    
    if ([[webView.request.URL.absoluteString lastPathComponent] isEqualToString:@"blank.html"])
    {
        //[MRHud show];
        [_refreshControl setTarget:self action:@selector(refresh) type:MRRefreshActionRefresh];
        [self refresh];
    }
}

/*===================================================================
 说明:
    加载失败
 ==================================================================*/
- (void)webView:(UIWebView *)sender didFailLoadWithError:(NSError *)error
{
    [MRHud dismiss];
    [_refreshControl endRefreshing];
    
    [MRAlert alertWithMessage:error.localizedDescription other:nil handler:^(NSInteger buttonIndex) {
        if (error.code == -1009) [self cancel];
    }];
}

@end
